package TestSparkConversionOperator;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;
import java.util.List;

public class SparkSortBy {
    /**
     * sortBy参数：
     * Function<T, S> f  :  sortBy根据Function<T,S>对象的call方法的返回值来对RDD元素进行排序
     * boolean ascending:  true表示升序，false表示降序
     * int numPartitions:  指定分区数，尽量和父RDD的分区数保持一致。RDD对象的getNumPartitions()可以获得分区数。
     * @param args
     */
    public static void main(String[] args) {
        SparkConf sparkConf = new SparkConf().setAppName("spark demo").setMaster(args[0]);
        JavaSparkContext sc = new JavaSparkContext(sparkConf);
        JavaRDD<Integer> rdd = sc.parallelize(Arrays.asList(1, 3, 5, 6, 7, 4, 9, 10), 2);
        JavaRDD<Integer> newRDD = rdd.sortBy(item -> item, true, 4);
        List<Integer> res = newRDD.collect();
        for (Integer i :res){
            System.out.println(i);
        }

    }
}
